package com.petshop.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.petshop.pojo.Products;
import com.petshop.utils.Result;

import java.util.ArrayList;

/**
 * @author 20289
 * @description 针对表【products(存储商品信息)】的数据库操作Service
 * @createDate 2025-02-27 11:17:00
 */
public interface ProductsService extends IService<Products> {

    /**
     * 上架一个商品
     * 商品已经存在且库存>0
     * 商品库存stock+1
     * 商品不存在，添加记录并库存+1
     *
     * @param products
     * @return
     */
    Result insertProduct(Products products);

    /**
     * 下架一个商品
     *
     * @param productId
     * @return
     */
    Result outProduct(Integer productId);


    /*
    批量下架商品
     */
    Result outBatchProduct(ArrayList<Integer> idList);

    /**
     * 修改商品信息
     *
     * @param products
     * @return
     */
    Result updateProduct(Products products);

    /**
     * 查询商品列表
     * name和category都是空的时候，返回所有商品；
     * 否则返回模糊name且等于category的商品
     *
     * @param name
     * @param category
     * @param pageCount
     * @param productPerPage
     * @return
     */
    Result queryProduct(String name, String category, Integer pageCount, Integer productPerPage);

    /**
     * 根据商品id查询商品信息
     *
     * @param productId
     * @return
     */
    Result queryProductById(Integer productId);

    /**
     * 仅仅查询第一页商品
     *
     * @param name
     * @param category
     * @param pageCount
     * @param productPerPage
     * @return
     */
    Result queryFirstProduct(String name, String category, Integer pageCount, Integer productPerPage);
}
